<template>
	<view>
		
		<u-swiper :list="slides" name="img_url" height="320"></u-swiper>
		
		<view class="u-text-center u-m-t-30">
			<u-tabs :list="sortList" bar-width="100" item-width="150" :is-scroll="false" :current="currentSort"
				@change="changeSort"></u-tabs>
		</view>
		
		<u-row gutter="16" class="u-skeleton">
			<u-col span="6" v-for="goods in goodsList  ">
				<goods-card :goods="goods"></goods-card>
			</u-col>
		</u-row>
	
		
		<!--引用组件 骨架屏-->
		<u-skeleton :loading="loading" :animation="true" bgColor="#FFF"></u-skeleton>
		
	</view>
</template>

<script>
	export default {
		data() {
			return {
				sortList: [{
						name: '默认'
					},
					{
						name: '销量'
					},
					{
						name: '推荐'
					},
					{
						name: '最新'
					},
				],
				currentSort: 0,
				slides:[],
				goodsList:[{},{},{},{},{},{}],
				page:1,
				loading:false,
				isLast:false
			}
		},
		onLoad(option) {
			
			this.getData();
		},
		methods: {
			changeSort(index) {
				this.currentSort = index;
				// 重置商品数据和分页
				this.goodsList = [{},{},{},{},{},{}];
				this.page = 1;
				this.getData();
			},
			// 获取数据
			async getData(){
				this.loading = true ; // 显示骨架屏
				const params = {
					page : this.page
				}
				// 增加排序条件
				if(this.currentSort == 1) params.sales = 1;
				if(this.currentSort == 2) params.recommend = 1;
				if(this.currentSort == 3) params.new = 1;
				const res = await this.$u.api.index(params);
				this.loading = false ; //隐藏骨架屏
				this.slides = res.slides;
				this.goodsList = this.goodsList.pop().title ? [...this.goodsList,...res.goods.data]:res.goods.data;
				this.isLast = res.goods.next_page_url ? false : true ;
			}
		},
		// 页面滚动到底部的事件
		onReachBottom() {
			// 如果是最后一页，则返回
			if(this.isLast) return ;
			// 重新请求数据，带上分页参数
			this.page = this.page + 1 ;
			this.getData();
		}
	}
</script>

<style lang="scss" scoped>
	
</style>
